草庐IT

TypeScript 函数

全部标签

javascript - 创建可在浏览器和 nodejs 中使用的 typescript 库

我想创建一个可以在浏览器和nodejs中使用的库。为了争论起见,假设这是我的图书馆:exportdefaultclassMyClass{publicgetString():string{return"Message";}}目前浏览器不支持ES2015模块,我不想在浏览器中依赖requirejs或任何其他模块加载器-我希望仅通过使用包含生成的.js文件来使用这个库脚本标签。感觉用内部模块就可以实现我想要的东西(不想污染全局命名空间)。但是,当我将代码包装在namespace/module中时,我很难将其编译为commonjs模块。实现我想要的目标的正确方法是什么?或者,可能是,作为一个t

javascript - 如何在 React 组件的返回函数中使用 IIFE?

当用户单击按钮时,我会弹出一个模态页面,它运行良好:render(){return(this.refs.simpleDialog.show()}>OpenModalTextthatappearsinsidethemodalpagethis.refs.simpleDialog.hide()}>GotIt)}但我的目标是在用户第一次打开页面时自动打开模式。我不想通过点击按钮打开模态页面问题:我可以使用IIFE(一个立即调用的函数表达式)以便在用户打开页面时立即打开模式吗?我的方法是将bool值设置为true。如果该值设置为true,则打开模态用于模态的库:https://github.co

javascript - 我应该如何使用 typescript 中的 "pdf"包

我已经安装了pdf,包括使用的类型npminstall--savepdf@types/pdf不幸的是,我找不到任何关于如何使用它的文档。如果我这样做:import{PDFJS}from'pdf';PDFJS.getDocument(fileName)我得到:TyeError:Cannotread'getDocument'ofundefined那么我该如何初始化呢? 最佳答案 更新:自从写下这个答案后,类型定义已重命名以匹配NPM包,并添加了适当的导出定义,因此您可以忽略以下所有内容,只需npminstall--save-dev@类型

javascript - JavaScript 中长构造函数的最佳实践

我正在创建具有很多属性的对象,我对实例化它们的最佳实践很好奇。拥有非常长的构造函数似乎很糟糕(实例化新对象并不好玩)。functionBook(title,author,pages,chapters,publisher,datePublished,authorHometown,protagonistFavoriteColor){this.title=title;this.authorpages=authorpages;this.pages=pages;this.chapters=chapters;this.publisher=publisher;this.datePublished=d

javascript - 在没有构造函数的情况下 react 定义状态

这个问题在这里已经有了答案:initstatewithoutconstructorinreact(3个答案)关闭5年前。我见过一些React开发人员在没有构造函数的情况下定义状态。我喜欢这样可以简化代码,但这样做安全吗?classDogextendsReact.Component{state={sound:'Woof'}return(Dogsays{this.state.sound})}对于过于简化的示例,我提前表示歉意。

javascript - 异步函数返回 Promise { <pending> }?

我有以下异步函数:asyncfunctionreadFile(){letcontent=awaitnewPromise((resolve,reject)=>{fs.readFile('./file.txt',function(err,content){if(err){returnreject(err)}resolve(content)})})console.log(content)}readFile()这运行得很好。它按预期将文件缓冲区输出到控制台。但是现在,如果我尝试返回值:asyncfunctionreadFile(){letcontent=awaitnewPromise((res

javascript - typescript 字符串到 bool 值

我正在尝试将字符串转换为bool值。有几种方法可以做到一种方法是letinput="true";letboolVar=(input==='true');这里的问题是我必须验证输入是真还是假。有没有更优雅的方式,而不是首先验证输入然后进行转换?在.NET中,我们有bool.TryParse如果字符串无效则返回false。typescript中是否有任何等价物? 最佳答案 你可以做这样的事情,你可以有三个状态。undefined表示该字符串不可解析为bool值:functionconvertToBoolean(input:string)

javascript - D3 - 从 v3 升级到 v4 时,forEach 不是函数

我正在尝试升级this可堆叠条形图到v4。除了一件事,一切正常。当我过滤一个类别时,条形图不会落到x轴的起点。我收到一条错误消息:state.selectAll(...).forEachisnotafunction我已经尝试了多种方法,但我无法弄清楚这一点。这是损坏的代码:functionplotSingle(d){class_keep=d.id.split("id").pop();idx=legendClassArray.indexOf(class_keep);//eraseallbutselectedbarsbysettingopacityto0d3.selectAll(".bar

javascript - 动态创建异步函数

我想知道是否可以像这样动态创建一个异步函数:newFunction('awaitPromise.resolve()');预期,前面的代码抛出:UncaughtSyntaxError:awaitisonlyvalidinasyncfunction 最佳答案 是的,您可以获得对非全局的引用AsyncFunction动态创建异步函数的构造函数。您可以像这样获得对AsyncFunction构造函数的引用:constAsyncFunction=Object.getPrototypeOf(asyncfunction(){}).construct

javascript - Webpack babel-loader runtime : Module build failed: TypeError: this. setDynamic 不是函数

我正在尝试将babel-loader与babel-plugin-transform-runtime一起使用。我已按照以下说明进行操作:https://github.com/babel/babel-loader#babel-is-injecting-helpers-into-each-file-and-bloating-my-code相关代码:rules:[//the'transform-runtime'plugintellsbabeltorequiretheruntime//insteadofinliningit.{test:/\.js$/,exclude:/(node_modules